<?php

namespace Xx2025\Kingdee\Erp\Response;

use Xx2025\Kingdee\Erp\BaseResponse;
use Xx2025\Kingdee\Erp\ResponseInterface;

class GyErpTradeDeliverysDetailGet extends BaseResponse implements ResponseInterface
{
    private static $_instace;

    /**是否发货
     * @var bool
     */
    private bool $deliveryState = false;

    /**快递单号
     * @var string
     */
    private string $expressNo = '';

    /**快递公司名称
     * @var string
     */
    private string $expressName = '';

    /**发货时间
     * @var string
     */
    private string $deliveryAt = '';

    /**业务单据号
     * @var string
     */
    private string $erpBillCode = '';

    /**发乎ode唯一码列表， 如果有
     * @var array
     */
    private array $uniqueCodeList = [];

    public static function getInstance() :self
    {
        if(empty(self::$_instace)) {
            self::$_instace = new self();
        }
        return clone self::$_instace;
    }


    public function setDeliveryState($bool)
    {
        $this->deliveryState = $bool;
    }

    public function getDeliveryState()
    {
        return $this->deliveryState;
    }



    public function setExpressNo($expressNo)
    {
        $this->expressNo = $expressNo;
    }

    public function getExpressNo()
    {
        return $this->expressNo;
    }


    public function setExpressName($expressName)
    {
        $this->expressName = $expressName;
    }

    public function getExpressName()
    {
        return $this->expressName;
    }



    public function setDeliveryAt($dateTime)
    {
        $this->deliveryAt = $dateTime;
    }


    /**发货时间
     * @param $dateTime
     * @return string 示例：2025-01-01 12:12:12
     */
    public function getDeliveryAt()
    {
        return $this->deliveryAt;
    }

    public function setErpBillCode($code)
    {
        $this->erpBillCode = $code;
    }

    public function getErpBillCode()
    {
        return $this->erpBillCode;
    }


    public function setUniqueCodeList(array $arr)
    {
        $this->uniqueCodeList = $arr;
    }

    /**发货的唯一码列表
     * @return array 示例：['001', '002']
     */
    public function getUniqueCodeList()
    {
        return $this->uniqueCodeList;
    }

}